モジュール詳細:橙色暗号

橙色、それは私を元気にしてくれる。

モジュールは、3つのディスプレー、キーボード、2つの矢印、及び現在のページを表示するボタン(送信ボタン)で構成されている。

右の矢印を押すと、次のページに移動できる。左の矢印を押すと前のページに移動できる。ページは全部で2ページある。

ページ1には、上のディスプレーに6文字の暗号化された単語、真ん中のディスプレーに6文字の文字列、下のディスプレーには暗号化された文字列が表示される。 暗号化された単語に「J」が含まれている場合、同じ位置にある真ん中のディスプレーの文字に置き換える。3ステップ完了後、その文字を再び「J」に戻す。

ページ2には、上のディスプレーに別の暗号化された文字列、真ん中のディスプレーに単語、下のディスプレーには数字が表示される。

以下のルールに従って単語を解読する。

ステップ1:コロン暗号

まず、5×5の行列を作成する必要がある。

ページ2の真ん中のディスプレーからキーワードを取得し、Jがある場合はそれをIに変換し、重複する英字の2文字目以降を削除する。

アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの最後の数字が偶数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを5×5の行列の形に配置する。これを行列Aと呼ぶ。

ページ1の下のディスプレーにある単語とページ2の上のディスプレーにある暗号化された文字列を連結する。

暗号化された文字列を2つずつのペアに分割し、各ペアについて以下の手順を実行する。

  • 行列Aから1番目の英字を探し、その段を取得する。
  • 行列Aから2番目の英字を探し、その列を取得する。
  • 2つの英字の交点が、復号された英字となる。

出来上がった文字が、ステップ3で使用するキーワードとなる。文字「J」が無いため、本来はJであった場所に「I」が含まれている可能性があることに注意する。

暗号化された単語: XFDFCTCGAL
ページ2の真ん中のディスプレー:MUSCLAR
シリアルナンバーの最後の数字:3
配置前行列A:MUSCLARBDEFGHIKNOPQTVWXYZ

MUSCL
ARBDE
FGHIK
NOPQT
VWXYZ

XF -> V
DF -> A
CT -> L
CG -> U
AL -> E
復号された単語:VALUE

ステップ2:バズリー暗号

ここでは、2つの行列を作成する必要がある。最初の行列は行列Bと呼ばれ、既に以下の通り作成されている。

AFLQV
BGMRW
CHNSX
DIOTY
EKPUZ

二つ目の行列は行列Cと呼ばれ、ページ2の下のディスプレーにある4桁の数字を使用して作成される。

数字の各桁を単語の形式に変換する(例:3097 → THREE ZERO NINE SEVEN)。これが行列Cで使うキーワードになる。

Jがある場合はそれをIに変換し、全ての空白と重複する英字の2文字目以降を削除する。アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの二番目の数字が奇数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを5×5の行列の形に配置する。これを行列Cと呼ぶ。

ページ1の上のディスプレーにある単語に対して、X文字ずつのグループに分割する。Xはページ2の下のディスプレーにある数字の各桁の合計を4で割った余りに2を加えた数である。

各グループそれぞれに対して、文字を反転させ、元の位置に戻す。

ページ2の下のディスプレー:3097 ページ1の上のディスプレー:DGPGKF
3 + 0 + 9 + 7 = 19 % 4 = 3 + 2 = 5
DGPGKF => DGPGK F => KGPGD F => KGPGDF

各英字を行列Cの中から探し、それと同じ段/列を行列Bの中から探して、新たな英字を得る。

結果の英字が、新たな暗号化された単語を綴る。

暗号化された単語:KGPGDF 4桁の数字:3097
シリアルナンバーの二番目の数字:2
鍵B:AFLQVBGMRWCHNSXDIOTYEKPUZ
鍵C:ABCDFGKLMPQUWXYTHREZONISV

AFLQV|ABCDF
BGMRW|GKLMP
CHNSX|QUWXY
DIOTY|THREZ
EKPUZ|ONISV

K -> G
G -> B
P -> W
G -> B
D -> Q
F -> V
新たな暗号化された単語:GBWBQV

ステップ3:フォースクエア暗号

ステップ名の通り、4つの行列が必要となる。ここでは、ステップ1、2で使用した行列A、B、Cをここでも使用する。行列Dは、ステップ1で得たキーワードを使って作成する。

Jがある場合はそれをIに変換し、全ての空白と重複する英字の2文字目以降を削除する。アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの最初の数字が偶数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを5×5の行列の形に配置する。これを行列Dと呼ぶ。

4つの行列を取得し、以下のように2×2のグリッド上に配置する。

A | B
---
C | D

ステップ2で獲得した暗号化された単語を2文字ずつのペアに分割する。各ペアに対して、以下の処理を行う。

  • 一番目の文字を行列Bから見つけ、二番目の文字を行列Cから見つける。
  • 一番目の文字がある行と二番目の文字がある列を行列Aから見つけ、一番目の復号された英字を獲得する。
  • 一番目の文字がある列と二番目の文字がある行を行列Dから見つけ、二番目の復号された英字を獲得する。

最初Jだった文字はJに置き換えることで、解読された単語になることを忘れないようにすること。

暗号化された単語:GBWBQV
シリアルナンバーの最初の数字:2
鍵A:MUSCLARBDEFGHIKNOPQTVWXYZ
鍵B:AFLQVBGMRWCHNSXDIOTYEKPUZ
鍵C:ABCDFGKLMPQUWXYTHREZONISV
鍵D:VALUEBCDFGHIKMNOPQRSTWXYZ

MUSCL|AFLQV
ARBDE|BGMRW
FGHIK|CHNSX
NOPQT|DIOTY
VWXYZ|EKPUZ
-----+-----
ABCDF|VALUE
GKLMP|BCDFG
QUWXY|HIKMN
THREZ|OPQRS
ONISV|TWXYZ

GB -> RA
WB -> RE
QV -> LY
復号された単語:RARELY

復号された単語を取得したら、それを送信する。入力を開始すると、全てのディスプレーが暗転し下のディスプレーに入力された文字が表示される。

入力を消去するには、いずれかの矢印をクリックする。ページが移動し、入力した文字列が消去される。6文字を超える入力はできないようになっている。

入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。ミスが記録された場合、モジュールの最初のページに戻るが、暗号の再生成はされない。